package io.yyxx.boot.business.entity.billDataEntity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.time.LocalDateTime;

@TableName("hotel_bill") // 数据库中的表名
@Data
public class HotelBillData {

    @TableId
    private Long id;                 // 数据id

    @TableField("create_time")
    private LocalDateTime createTime; // 新增时间
    // private LocalDateTime updateTime; // 修改时间

    @TableField("sync_state")
    private int syncState;          // 同步状态

    @TableField("check_in_date")
    @JsonProperty("check_in_date")
    private String checkInDate; // 入住时间

    @TableField("checkout_date")
    @JsonProperty("checkout_date")
    private String checkoutDate; // 离店时间

    @TableField("city")
    @JsonProperty("city")
    private String city; // 入住城市

    @TableField("city_code")
    @JsonProperty("city_code")
    private String cityCode; // 入住城市编码

    @TableField("hotel_name")
    @JsonProperty("hotel_name")
    private String hotelName; // 酒店名称

    @TableField("room_type")
    @JsonProperty("room_type")
    private String roomType; // 房型

    @TableField("room_number")
    @JsonProperty("room_number")
    private Integer roomNumber; // 房间数

    @TableField("nights")
    @JsonProperty("nights")
    private Integer nights; // 入住天数

    @TableField("total_nights")
    @JsonProperty("total_nights")
    private Integer totalNights; // 总间夜数

    @TableField("order_type")
    @JsonProperty("order_type")
    private String orderType; // 订单类型

    @TableField("order_price")
    @JsonProperty("order_price")
    private Double orderPrice; // 订单金额

    @TableField("corp_total_fee")
    @JsonProperty("corp_total_fee")
    private Double corpTotalFee; // 企业支付金额

    @TableField("person_settle_price")
    @JsonProperty("person_settle_price")
    private Double personSettlePrice; // 个人结算费用

    @TableField("fu_point_fee")
    @JsonProperty("fu_point_fee")
    private Double fuPointFee; // 福豆支付

    @TableField("room_price")
    @JsonProperty("room_price")
    private Double roomPrice; // 房价

    @TableField("service_fee")
    @JsonProperty("service_fee")
    private Double serviceFee; // 服务费

    @TableField("fees")
    @JsonProperty("fees")
    private Double fees; // 杂费

    @TableField("corp_refund_fee")
    @JsonProperty("corp_refund_fee")
    private Double corpRefundFee; // 企业退款金额

    @TableField("person_refund_fee")
    @JsonProperty("person_refund_fee")
    private Double personRefundFee; // 个人退款金额

    @TableField("promotion_fee")
    @JsonProperty("promotion_fee")
    private Double promotionFee; // 优惠券

    @TableField("apply_id")
    @JsonProperty("apply_id")
    private String applyId; // 审批单号

    @TableField("over_apply_id")
    @JsonProperty("over_apply_id")
    private String overApplyId; // 超标审批单号

    @TableField("is_share_str")
    @JsonProperty("is_share_str")
    private String isShareStr; // 是否合住

    @TableField("is_negotiation")
    @JsonProperty("is_negotiation")
    private String isNegotiation; // 是否协议价

    @TableField("primary_id")
    @JsonProperty("primary_id")
    private Long primaryId; // 主键 id

    @TableField("`index`")
    @JsonProperty("index")
    private String index; // 序号

    @TableField("status")
    @JsonProperty("status")
    private Integer status; // 入账状态

    @TableField("bill_record_time")
    @JsonProperty("bill_record_time")
    private String billRecordTime; // 入账时间

    @TableField("order_id")
    @JsonProperty("order_id")
    private String orderId; // 商旅订单号

    @TableField("book_time")
    @JsonProperty("book_time")
    private String bookTime; // 预订时间

    @TableField("booker_name")
    @JsonProperty("booker_name")
    private String bookerName; // 预订人姓名

    @TableField("booker_id")
    @JsonProperty("booker_id")
    private String bookerId; // 预订人 user_id

    @TableField("booker_job_no")
    @JsonProperty("booker_job_no")
    private String bookerJobNo; // 预订人工号

    @TableField("traveler_name")
    @JsonProperty("traveler_name")
    private String travelerName; // 出行人名称

    @TableField("traveler_id")
    @JsonProperty("traveler_id")
    private String travelerId; // 出行人 user_id

    @TableField("traveler_job_no")
    @JsonProperty("traveler_job_no")
    private String travelerJobNo; // 出行人工号

    @TableField("cascade_department")
    @JsonProperty("cascade_department")
    private String cascadeDepartment; // 联级部门

    @TableField("department")
    @JsonProperty("department")
    private String department; // 末级部门

    @TableField("department_id")
    @JsonProperty("department_id")
    private String departmentId; // 部门 id

    @TableField("cost_center")
    @JsonProperty("cost_center")
    private String costCenter; // 成本中心名称

    @TableField("cost_center_number")
    @JsonProperty("cost_center_number")
    private String costCenterNumber; // 成本中心编号

    @TableField("project_name")
    @JsonProperty("project_name")
    private String projectName; // 项目名称

    @TableField("project_code")
    @JsonProperty("project_code")
    private String projectCode; // 项目编码

    @TableField("invoice_title")
    @JsonProperty("invoice_title")
    private String invoiceTitle; // 发票抬头

    @TableField("settlement_time")
    @JsonProperty("settlement_time")
    private String settlementTime; // 结算时间

    @TableField("fee_type")
    @JsonProperty("fee_type")
    private String feeType; // 费用类型

    @TableField("settlement_type")
    @JsonProperty("settlement_type")
    private String settlementType; // 结算类型

    @TableField("capital_direction")
    @JsonProperty("capital_direction")
    private String capitalDirection; // 资金方向

    @TableField("settlement_fee")
    @JsonProperty("settlement_fee")
    private Double settlementFee; // 结算金额

    @TableField("settlement_grant_fee")
    @JsonProperty("settlement_grant_fee")
    private Double settlementGrantFee; // 结算金额--预存赠送部分

    @TableField("alipay_trade_no")
    @JsonProperty("alipay_trade_no")
    private String alipayTradeNo; // 支付流水号

    @TableField("voucher_type")
    @JsonProperty("voucher_type")
    private Integer voucherType; // 票据类型

    @TableField("remark")
    @JsonProperty("remark")
    private String remark; // 备注

    @TableField("apply_extend_field")
    @JsonProperty("apply_extend_field")
    private String applyExtendField; // 审批扩展自定义字段

    @TableField("tax_rate")
    @JsonProperty("tax_rate")
    private String taxRate; // 税率

    @TableField("third_itinerary_id")
    @JsonProperty("third_itinerary_id")
    private String thirdItineraryId; // 第三方行程 id

    @TableField("apply_dep_city_code")
    @JsonProperty("apply_dep_city_code")
    private String applyDepCityCode; // 申请出发城市 code

    @TableField("apply_dep_city_name")
    @JsonProperty("apply_dep_city_name")
    private String applyDepCityName; // 申请出发城市名称

    @TableField("apply_arr_city_code")
    @JsonProperty("apply_arr_city_code")
    private String applyArrCityCode; // 申请到达城市 code

    @TableField("apply_arr_city_name")
    @JsonProperty("apply_arr_city_name")
    private String applyArrCityName; // 申请到达城市名称

    @TableField("room_no")
    @JsonProperty("room_no")
    private String roomNo; // 房间序号

    @TableField("average_nights")
    @JsonProperty("average_nights")
    private String averageNights; // 平均间夜数

    @TableField("reserve_rule")
    @JsonProperty("reserve_rule")
    private String reserveRule; // 差旅标准

    @TableField("is_early_departure")
    @JsonProperty("is_early_departure")
    private String isEarlyDeparture; // 是否提前离店

    @TableField("fines")
    @JsonProperty("fines")
    private Double fines; // 罚金

    @TableField("city_county")
    @JsonProperty("city_county")
    private String cityCounty; // 入住县级市

    @TableField("city_county_code")
    @JsonProperty("city_county_code")
    private String cityCountyCode; // 入住县级市 code

    @TableField("business_trip_result")
    @JsonProperty("business_trip_result")
    private String businessTripResult; // 出差事由

    @TableField("exceed_reason")
    @JsonProperty("exceed_reason")
    private String exceedReason; // 超标原因

    @TableField("book_reason")
    @JsonProperty("book_reason")
    private String bookReason; // 预订非协议价原因

    @TableField("brand_group")
    @JsonProperty("brand_group")
    private String brandGroup; // 酒店集团

    @TableField("brand_name")
    @JsonProperty("brand_name")
    private String brandName; // 酒店品牌

    @TableField("star")
    @JsonProperty("star")
    private String star; // 酒店星级

    @TableField("traveler_member_type_name")
    @JsonProperty("traveler_member_type_name")
    private String travelerMemberTypeName; // 出行人类型

    @TableField("payment_department_id")
    @JsonProperty("payment_department_id")
    private String paymentDepartmentId; // 费用归属部门 id

    @TableField("payment_department_name")
    @JsonProperty("payment_department_name")
    private String paymentDepartmentName; // 费用归属部门名称

    @TableField("insurance_product_name")
    @JsonProperty("insurance_product_name")
    private String insuranceProductName; // 保险险种

    @TableField("insurance_price")
    @JsonProperty("insurance_price")
    private Double insurancePrice; // 保险费

    @TableField("ins_order_id")
    @JsonProperty("ins_order_id")
    private String insOrderId; // 保险订单号

    @TableField("insurance_number")
    @JsonProperty("insurance_number")
    private String insuranceNumber; // 保单号

    @TableField("agreement_promotion_fee")
    @JsonProperty("agreement_promotion_fee")
    private Double agreementPromotionFee; // 协议价优惠金额

    @TableField("billing_entity")
    @JsonProperty("billing_entity")
    private String billingEntity; // 开票方

    @TableField("scene_id")
    @JsonProperty("scene_id")
    private String sceneId; // 场景 id

    @TableField("scene_name")
    @JsonProperty("scene_name")
    private String sceneName; // 场景名称

    @TableField("original_reserve_rule")
    @JsonProperty("original_reserve_rule")
    private String originalReserveRule; // 原始差标

    @TableField("cancel_or_modify_scene")
    @JsonProperty("cancel_or_modify_scene")
    private String cancelOrModifyScene; // 取消/修改场景

    @TableField("cancel_or_modify_reason")
    @JsonProperty("cancel_or_modify_reason")
    private String cancelOrModifyReason; // 取消/修改原因

    @TableField("recover_money_receipt_amt")
    @JsonProperty("recover_money_receipt_amt")
    private Double recoverMoneyReceiptAmt; // 追款单金额

    @TableField("book_mode")
    @JsonProperty("book_mode")
    private String bookMode; // 预订类型

    @TableField("unbooked_lowest_price_reason")
    @JsonProperty("unbooked_lowest_price_reason")
    private String unbookedLowestPriceReason; // 未预订同房型最低价原因

    @TableField("deductible_tax")
    @JsonProperty("deductible_tax")
    private Double deductibleTax; // 参考可抵扣税额

    @TableField("voucher_type_desc")
    @JsonProperty("voucher_type_desc")
    private String voucherTypeDesc; // 票据类型描述

    @TableField("category_desc")
    @JsonProperty("category_desc")
    private String categoryDesc; // 类目描述

    @TableField("fee_type_desc")
    @JsonProperty("fee_type_desc")
    private String feeTypeDesc; // 费用类型描述

    @TableField("settle_type_desc")
    @JsonProperty("settle_type_desc")
    private String settleTypeDesc; // 结算类型描述

    @TableField("trade_action_desc")
    @JsonProperty("trade_action_desc")
    private String tradeActionDesc; // 资金方向描述

    @TableField("status_desc")
    @JsonProperty("status_desc")
    private String statusDesc; // 入账状态描述

    @TableField("no_advance_booking_reason")
    @JsonProperty("no_advance_booking_reason")
    private String noAdvanceBookingReason; // 未提前预订原因

    @TableField("book_channel")
    @JsonProperty("book_channel")
    private String bookChannel; // 预订渠道
}